package com.ruoyi.course.mapper;

import com.ruoyi.course.domain.CourseSwitch;
import com.ruoyi.course.vo.CourseSwitchVO;

import java.util.List;

/**
 * 调课记录Mapper接口
 * 
 * @author ruoyi
 * @date 2025-06-12
 */
public interface CourseSwitchMapper 
{
    /**
     * 查询调课记录
     * 
     * @param switchId 调课记录主键
     * @return 调课记录
     */
    public CourseSwitch selectCourseSwitchBySwitchId(Integer switchId);

    /**
     * 查询调课记录列表
     * 
     * @param courseSwitch 调课记录
     * @return 调课记录集合
     */
    public List<CourseSwitch> selectCourseSwitchList(CourseSwitch courseSwitch);

    /**
     * 查询调课记录VO列表
     * 
     * @param courseSwitchVO 调课记录VO
     * @return 调课记录VO集合
     */
    public List<CourseSwitchVO> selectCourseSwitchVOList(CourseSwitchVO courseSwitchVO);

    /**
     * 新增调课记录
     * 
     * @param courseSwitch 调课记录
     * @return 结果
     */
    public int insertCourseSwitch(CourseSwitch courseSwitch);

    /**
     * 修改调课记录
     * 
     * @param courseSwitch 调课记录
     * @return 结果
     */
    public int updateCourseSwitch(CourseSwitch courseSwitch);

    /**
     * 删除调课记录
     * 
     * @param switchId 调课记录主键
     * @return 结果
     */
    public int deleteCourseSwitchBySwitchId(Integer switchId);

    /**
     * 批量删除调课记录
     * 
     * @param switchIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCourseSwitchBySwitchIds(Integer[] switchIds);

    /**
     * 假删除调课记录
     * 
     * @param switchId 调课记录主键
     * @return 结果
     */
    public int softDeleteCourseSwitch(Integer switchId);

    /**
     * 根据关联ID假删除成对的调课记录
     * 
     * @param relationId 关联ID（empty1字段值）
     * @return 结果
     */
    public int softDeleteCourseSwitchByRelationId(String relationId);

    /**
     * 批量假删除调课记录（同时删除对应的成对记录）
     * 
     * @param switchIds 需要删除的数据主键集合
     * @return 结果
     */
    public int softDeleteCourseSwitchBySwitchIds(Integer[] switchIds);
}
